package com.yxw.live_vod_boot.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/** 
 * @author liuxin
 * @create 2023-11-16 16:31:55 
 * @description  
 */
@Data
@TableName(value ="yx_on_demand_video")
@ApiModel(value = "点播视频信息" , description="yx_on_demand_video")
public class YxOnDemandVideoEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "video_id",type = IdType.ASSIGN_ID)
    @ApiModelProperty(value="视频ID")
    private Long videoId;

    @TableField(value="video_name")
    @ApiModelProperty(value="视频名称")
    private String videoName;

    @TableField(value="v_id")
    @ApiModelProperty(value="火山视频ID")
    private String vId;

    @TableField(value="space_name")
    @ApiModelProperty(value="所属空间")
    private String spaceName;

    @TableField(value="review_video_id")
    @ApiModelProperty(value="审核视频ID")
    private Long reviewVideoId;

    @TableField(value="class_id")
    @ApiModelProperty(value="视频分类 火山创建的视频分类")
    private Long classId;

    @TableField(value="video_size")
    @ApiModelProperty(value="视频大小")
    private BigDecimal videoSize;

    @TableField(value="cover_url")
    @ApiModelProperty(value="封面")
    private String coverUrl;

    @TableField(value="publish_status")
    @ApiModelProperty(value="发布状态 1：未发布 2：已发布 3：发布失败")
    private Integer publishStatus;

    @TableField(value="pay_type")
    @ApiModelProperty(value="是否需要付费 0：是 1：否")
    private Integer payType;

    @TableField(value="pay_amount")
    @ApiModelProperty(value="点播金额")
    private Double payAmount;

    @TableField(value="create_time")
    @ApiModelProperty(value="创建时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;

    @TableField(value="update_time")
    @ApiModelProperty(value="更新时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    @TableField(value="top_flag")
    @ApiModelProperty(value="是否置顶 0:未置顶 1:置顶")
    private Integer topFlag;

    @TableField(value="video_describe")
    @ApiModelProperty(value="描述")
    private String videoDescribe;

    @TableField(value="storage_type")
    @ApiModelProperty(value="存储类型 1:标准存储 2：低频存储 3：归档存储")
    private Integer storageType;

    @TableField(value="play_url")
    @ApiModelProperty(value="播放地址")
    private String playUrl;

    @TableField(value="play_token")
    @ApiModelProperty(value="播放认证")
    private String playToken;

    @TableField(value="user_id")
    @ApiModelProperty(value="上传人ID")
    private Long userId;

    @TableField(value="user_name")
    @ApiModelProperty(value="上传人名称")
    private String userName;

    @TableField(value="shop_id")
    @ApiModelProperty(value="商铺ID")
    private Long shopId;


    @TableField(value="shop_name")
    @ApiModelProperty(value="商铺名称")
    private String shopName;

    @TableField(value="video_status")
    @ApiModelProperty(value="视频状态 1:正常 2：删除 3：下架")
    private Integer videoStatus;

    @TableField(value="titel")
    @ApiModelProperty(value="标题")
    private String titel;

    @TableField(value="public_flag")
    @ApiModelProperty(value="是否公开0-否 1：是")
    private Integer publicFlag;

    @TableField(value="job_id")
    @ApiModelProperty(value="火山url对应的id")
    private String jobId;

    @TableField(value="duration")
    @ApiModelProperty(value="视频时长")
    private Float duration;

    @TableField(value="update_id")
    @ApiModelProperty(value="更新人ID")
    private Long updateId;

    @TableField(value="update_name")
    @ApiModelProperty(value="更新人名称")
    private String updateName;


    @TableField(exist = false)
    @ApiModelProperty(value="播放量")
    private Integer playCnt;

    @TableField(exist = false)
    @ApiModelProperty(value="点赞量")
    private Integer likeCnt;

    @TableField(exist = false)
    @ApiModelProperty(value="分享量")
    private Integer shareCnt;

    @TableField(exist = false)
    @ApiModelProperty(value="收藏量")
    private Integer collectionCnt;

    @TableField(exist = false)
    @ApiModelProperty(value="评论量")
    private Integer commentCnt;

    @TableField(exist = false)
    @ApiModelProperty(value="店铺头像")
    private String shopHeadUrl;

    @TableField(exist = false)
    @ApiModelProperty(value="是否点赞")
    private Boolean isLike;
}
